package com.vue;

import javax.swing.JButton;
import javax.swing.table.AbstractTableModel;

public class RestaurantModeleTable extends AbstractTableModel{
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private Object[][] data;
	private String[] title;

	/**
	 * Constructeur
	 * @param data
	 * @param title
	 */
	public RestaurantModeleTable(Object[][] data, String[] title){
		this.data = data;
		this.title = title;
	}

	/**
	 * Retourne le nombre de colonnes
	 */
	public int getColumnCount() {
		return this.title.length;
	}
	
	/**
	 * Retourne le nombre de lignes
	 */
	public int getRowCount() {
		return this.data.length;
	}
	/**
	* Retourne la classe de la donnée de la colonne
	* @param col
	*/
	public Class getColumnClass(int col){
		//On retourne le type de la cellule à la colonne demandée
		//On se moque de la ligne puisque les données sur chaque ligne sont les mêmes
		//On choisit donc la première ligne
		

		return this.data[0][col].getClass();
	}

	/**
	 * Retourne vrai si la cellule est éditable : celle-ci sera donc éditable
	 * @return boolean
	 */
	public boolean isCellEditable(int row, int col){
		//On appelle la méthode getValueAt qui retourne la valeur d'une cellule
		//Et on fait un traitement spécifique si c'est un JButton
		if(getValueAt(0, col) instanceof JButton)
			return false;
		return true; 
	}
	/**
	 * Retourne la valeur à l'emplacement spécifié
	 */
	public Object getValueAt(int row, int col) {
		return this.data[row][col];
	}
	/**
	* Retourne le titre de la colonne à l'indice spécifé
	*/
	public String getColumnName(int col) {
	  return this.title[col];
	}
			
}

